Method and program for creating applications by using a logic table

ABSTRACT

The disclosed logic tables include a truth table, an answer table and a state table. The logic tables enable integration of conditional logic, complex situational judging, and state handling using an elegant, visual set of tools with a consistent graphical user interface. The user is able to create logical interactions between objects which would otherwise require the use of a complex computer programming language.

FIELD

This disclosure relates generally to a program product for developingmultimedia computer applications, and in particular to a program productfor allowing a computer apparatus to link program objects using a logictable as a program object.

BACKGROUND

In general, decision tables contain a list of decisions and the criteriaon which they are based. In computer programming, decision tables areused to direct processes according to decisions made in differentsituations. A decision table can be quite complex, especially where manydecisions are involved to account for all possible situations. It isgenerally accepted that although visual programming environments areuser friendly, they tend to fail to address the need for creators ofinteractive media to build interactions which depend on complex decisionmaking such as those involved with decision tables. Thus, the solutiontends to be a “scripting” functionality where the creator needs to useprogramming.

SUMMARY

A visual set of tools and methods for enabling integration ofconditional logic, complex situational judging and state handling aredescribed.

In one aspect of the disclosure, logic tables as program objects arecreated within a graphical user interface (GUI) system. The use of logictables as program objects allow for sophisticated evaluation andmanipulation of objects and properties such that a user can createapplications using decision tables with a high degree of complexitywithout having to learn complex computer programming languages such asJava, C++, etc.

The disclosed logic tables include a truth table, an answer table and astate table. The logic tables enable integration of conditional logic,complex situational judging, and state handling using an elegant, visualset of tools with a consistent graphical user interface. The user isable to create logical interactions between objects which wouldotherwise require the use of a complex computer programming language.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a high-level schematic of a system for providing a combinedprogramming and running implementation for creating a multimediacomputer application.

FIG. 2A is a flowchart of a process for providing a combined programmingand running implementation for creating a multimedia computerapplication to a user via a web browser.

FIG. 2B is a flowchart of a process for providing a combined programmingand running implementation for creating a multimedia computerapplication to a user via a combined programming and running softwareapplication stored on the user terminal.

FIG. 3 illustrates one embodiment of a Truth Table as a logical object.

FIGS. 4A-4C are flow charts of one embodiment of the disclosed method.

FIG. 5 illustrates one embodiment of a GUI implementing a Truth Table asa logical object.

FIGS. 6A-B illustrate one embodiment of an Answer Table as a logicalobject.

FIG. 7 illustrates one embodiment of a GUI implementing an Answer Tableas a logical object.

FIG. 8A-F illustrate one embodiment of a State Table as a logicalobject.

FIG. 9 illustrates one embodiment of a GUI implementing a State Table asa logical object.

FIG. 10 is an example of a computing device that can be used toimplement the systems and methods described herein.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the present invention. However, it will beapparent to one of ordinary skill in the art that the present inventionmay be practiced without these specific details. In other instances,well-known methods, procedures, components, circuits, and networks havenot been described in detail so as not to unnecessarily obscure aspectsof the embodiments.

It will also be understood that, although the terms first, second, etc.may be used herein to describe various elements, these elements shouldnot be limited by these terms. These terms are only used to distinguishone element from another. For example, a first gesture could be termed asecond gesture, and, similarly, a second gesture could be termed a firstgesture, without departing from the scope of the present invention.

The terminology used in the description of the invention herein is forthe purpose of describing particular embodiments only and is notintended to be limiting of the invention. As used in the description ofthe invention and the appended claims, the singular forms “a”, “an” and“the” are intended to include the plural forms as well, unless thecontext clearly indicates otherwise. It will also be understood that theterm “and/or” as used herein refers to and encompasses any and allpossible combinations of one or more of the associated listed items. Itwill be further understood that the terms “comprises” and/or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in response to detecting,” dependingon the context. Similarly, the phrase “if it is determined” or “if [astated condition or event] is detected” may be construed to mean “upondetermining” or “in response to determining” or “upon detecting [thestated condition or event]” or “in response to detecting [the statedcondition or event],” depending on the context.

The term “multimedia computer application” (i.e., project) is usedherein to refer to an executable program that is capable of outputtingfrom a computer one or more sensory stimuli (i.e. visual, audial,tactile, etc.) allowing a user to perform singular or multiple relatedspecific tasks. The term “editing” is used herein to refer to creating anew multimedia computer application, modifying an existing multimediacomputer application, and/or interacting with an existing multimediacomputer application.

The term “program” is used herein to refer to generally to a languagehaving a form that a machine is configured to understand and/or follow.The term “debugging” is used herein to refer to a process for detectingand locating program faults for fixing faults in a program. The term“programming language” is used herein to refer to an artificial languagefor expressing computations, algorithms, and logic for directing amachine to perform a particular function and/or action. The term“compiler” is used herein to refer to a computer program that transformsthe written source code into machine language that can be executed by acomputer processor. The term “object relational mapping” is used hereinto refer to a programming technique for converting data betweenincompatible type systems in object-oriented programming languages.

The term “asset” is used herein to refer to any image, audio, video,text, SWF (Shockwave Flash), XML (Extensible Markup Language) or otherexternal multimedia formats used in the multimedia computer application.The term “object” is used herein to include, but are not limited by, aprimitive object, a container object, and/or an interactive object. Theterm “primitive object” is used herein to describe a single object, suchlines, curves, and/or other basic as geometric shapes. The term“container object” is used herein to describe an object that can containone or more other objects. Examples include, but are not limited by, anarena object and/or a gadget object. A container object can contain anyof the other objects. The term “interactive object” is used herein todescribe an object that is configured for interaction with a user,wherein the visual representation of the object is changeable upon theinteraction with the user. Examples include a slider object and/or apath object. A primitive object having certain properties can be aninteractive object, if the visual representation of the primitive objectis changeable upon the interaction with the user.

The term “tool” is used here in to describe a function for selecting,creating, and/or manipulating an object. The term “tool box” is usedherein to describe a visual representation displaying one or more toolicons. The term “tool icon” is used herein to describe a graphicalpictogram that represents a tool, that is displayed on a screen of adisplay device. The tool icon may be clicked and/or selected by a userinteracting with the GUI to activate a tool associated with the selectedtool icon for selecting, creating, and/or manipulating an object.

The term “application data” is used herein to refer to the current stateof the multimedia computer application. The term “project data” is usedherein to refer to the serialized aggregate of all objects, allinteractions between the objects, and all assets used in the multimediacomputer application.

The term “graphical user interface” (i.e., GUI) is used herein to referto a type of user interface that generally offers visual indicators thatcan be manipulated by a user for performing actions (such as, forexample, select commands, call up files, start programs, and do otherroutine tasks) as opposed to having to type in text commands.

The term “programming environment” is used herein to refer to softwarerun on a computer processor which allows the use of programmingexpressions (such as written code, graphics, drawings, animation oricons) in the process of programming a multimedia computer application.The term “runtime environment” is used herein to refer to software runon a computer processor which allows a user to run (i.e. sendinginstructions to the computer's processor and accessing the computer'smemory (RAM) and other system resources) an executed multimedia computerapplication. The term “real-time collaboration” is used herein to referto software run on a computer processor which allows several people toconcurrently edit a multimedia computer application using differentcomputers. The term “single combined programming and runtimeimplementation” is used herein to refer to software run on a computerprocessor which allows a user to use programming expressions (such aswritten code, graphics, drawings, animation or icons) in the process ofprogramming a multimedia computer application and concurrently allows auser to run (i.e. sending instructions to the computer's processor andaccessing the computer's memory (RAM) and other system resources) anexecuted multimedia computer application.

Methods for associating program objects using a logic table as a programobject are described. A multimedia computer application, as definedherein, is directed to a computer program that is a complete interactiveexperience that is capable of performing singular or multiple relatedspecific tasks. Objects, as discussed herein, refer to primitive,logical and interactive data structures consisting of data fields andmethods together with their interactions.

An interactive object, as defined herein, refers to an object that thatcan be made up of other interactive objects, primitive objects, and/orlogical objects. In some instances an interactive object may be aseparate multimedia computer application that is being used to perform afunction within a larger multimedia computer application.

A project, as discussed herein, includes at least one selected from adecoded version of a multimedia computation application, an object, anasset or a resource, and combinations thereof.

Assets or resources, as discussed herein, refer to any image, audio,video, text, SWF (Shockwave Flash), or XML (Extensible Markup Language)used in the multimedia computer application. Application data, asdiscussed herein, refers to the current state of the multimedia computerapplication. Project data, as discussed herein, refers to the serializedaggregate of all objects, all interactions between the objects, and allassets used in the multimedia computer application.

FIG. 1 is a high-level schematic of a system 100 for providing acombined programming and running implementation for creating, modifyingand/or interacting with a multimedia computer application, according toone embodiment. The system 100 includes a plurality of user terminals110-A and 110-B, a back end server 120, and a network 130. The userterminals 110-A and 110-B communicate with the back end server 120 viathe network 130.

The user terminals 110-A and 110-B allow a user to create a multimediacomputer application that is stored in the back end server 120 and tomodify and/or interact with the multimedia computer application via thenetwork 130. The user terminals 110-A use a web browser 135 to create,modify and/or interact with a multimedia computer application hosted onback end server 120 via the network 130. The user terminal 110-B can useeither a web browser 135 or a combined programming and runningapplication 140 to create, modify and/or interact with a multimediacomputer application hosted on the back end server 120 via the network130. Regardless of whether the multimedia computer application isaccessed via the web browser 135 or the combined programming and runningapplication 140, the back end server provides a unified codebase to theuser terminals 110-A and 110-B for a user to create, modify and/orinteract with the multimedia computer application.

In some embodiments, a multimedia computer application can be stored inthe user terminal 110-B and the back end server 120. In theseembodiments, when the user terminal 110-B does not have access to thenetwork 130, the user can still create, modify and/or interact with themultimedia computer application via the combined programming and runningapplication 140. When the user terminal 110-B does connect to thenetwork 130, any changes, modifications and/or interactions to themultimedia computer application can then be updated to the multimediacomputer application stored in the back end server.

Also, in some embodiments the combined programming and runningapplication 140 contains additional functionality over the web browser135 including allowing the import of assets from the native operatingsystem of the user terminal 110-B, providing advanced methods ofexporting a multimedia computer application and its assets to the backend server 120, and, as discussed above, offline editing of themultimedia computer application. One example of an advanced method forexporting a multimedia computer application and its contents is toconvert the multimedia computer application and its contents into asingle zip file that can be seamlessly imported and unzipped by thecombined programming and running application 140.

In one embodiment, each of the user terminals 110-A and 110-B is acomputing device, such as the computing device shown in FIG. 10.Examples of web browsers that can be used include, for example,Microsoft Internet Explorer, Mozilla Firefox, Apple Safari, etc.

The back end server 120 hosts the programming and runtime environmentsin a single combined programming and running implementation 145. Theback end server 120 also stores multimedia computer applications andassets created or provided while using the combined programming andrunning implementation 145. The back end server 120 stores the createdmultimedia computer applications and the assets in a database 150.

In one embodiment, the network 130 is an Internet based network thatallows any computing device with access to the Internet to access aparticular multimedia computer application or asset through the singlecombined programming and running implementation 145. In anotherembodiment, the network 130 is an Intranet based network that allowsonly those communicating devices (i.e., user terminals 110-A and 110-B)that are granted secure access to the network 130 to access a particularmultimedia computer application or asset through the single combinedprogramming and running implementation 145.

FIG. 2A is a flowchart 200 of a process for providing a user access to acombined programming and running implementation for creating amultimedia computer application via a web browser, according to oneembodiment. The flowchart 200 begins at step 210, where a user terminal(such as the user terminal 110-A or 110-B shown in FIG. 1) connects to aback end server (such as the back end server 120 shown in FIG. 1) via aweb browser (such as the web browser 135 shown in FIG. 1). After theuser terminal successfully connects to the back end server via the webbrowser, the flowchart 200 proceeds to step 220.

At step 220, a user via the user terminal requests access to aparticular multimedia computer application or requests to create a newmultimedia computer application. The back end server determines whetherthe user terminal has the necessary access permission to access themultimedia computer application or create a new multimedia computerapplication. If the back end server determines that the user terminalhas the necessary access permission, the flowchart 200 proceeds to step230. If the back end server determines the user terminal does not havethe necessary access permission to access the multimedia computerapplication or create a new multimedia computer application, theflowchart 200 proceeds to step 240. At step 240, the process ends.

The back end server can determine whether the user terminal has thenecessary access permission based on different factors. For example, insome embodiments, the back end server checks whether the user terminalhas provided correct password and login information to access aparticular multimedia computer application or create a new multimediacomputer application.

At step 230, if the user terminal requested a particular multimediacomputer application, the back end server provides access to a front endportion of the combined programming and running implementation and tothe particular multimedia computer application via the combinedprogramming and running implementation. If the user requested to createa new multimedia computer application, the back end server provides thecombined programming and running implementation for creating amultimedia computer application with a new multimedia computerapplication.

FIG. 2B is a flowchart 250 of a process for providing a user access to acombined programming and running implementation for creating amultimedia computer application via a combined programming and runningsoftware application stored on the user terminal, according to oneembodiment. The flowchart 250 begins at step 260, where a user terminal(such as the user terminal 110-B shown in FIG. 1) connects to a back endserver (such as the back end server 120 shown in FIG. 1) via a combinedprogramming and running software application (such as the combinedprogramming and running application 145 shown in FIG. 1) stored on theuser terminal. After the user terminal successfully connects to the backend server, the flowchart 250 proceeds to step 270.

At step 270, a user via the user terminal requests access to aparticular multimedia computer application or requests to create a newmultimedia computer application. The back end server determines whetherthe user terminal has the necessary access permission to access themultimedia computer application or create a new multimedia computerapplication. If the back end server determines that the user terminalhas the necessary access permission, the flowchart 250 proceeds to step280. If the back end server determines the user terminal does not havethe necessary access permission to access the multimedia computerapplication, the flowchart 250 proceeds to step 290. At step 290, theprocess ends.

At step 280, if the user terminal requested a particular multimediacomputer application, the back end server provides access to theparticular multimedia computer application that can be modified and/orinteracted with using a front end portion of the combined programmingand running software application stored on the user terminal. If theuser terminal requested to create a new multimedia computer application,the back end server provides a new multimedia computer application thatcan be modified using the combined programming and running softwareapplication stored on the user terminal.

The systems and methods illustrated in FIGS. 1, 2A and 2B can be used toedit a multimedia computer application while the multimedia computerapplication is running and to run a multimedia computer applicationwhile the multimedia computer application is being edited. Theprogramming environment and the runtime environment described herein canhave the same functionality. The programming environment and the runtimeenvironment can provide real-time collaboration of a multimedia computerapplication between users in different geographical locations.

In some aspects of this disclosure, a graphical user interface (GUI)system is created by the single combined programming and runningimplementation 145. In one example, the GUI system is an environment onan image display of the user terminals 110-A and 110B implemented, forexample, by a single combined programming and running implementation145. In one instance, the GUI system is contained within the web browser135.

In some embodiments, a multimedia computer application is created by auser when the GUI system is implemented. The multimedia computerapplication is modified by the single combined programming and runningimplementation 145 whenever any changes are made in the GUI system.

In some embodiments, the GUI system includes a window in which objectsare arranged and a toolbox which enables a user to select a tool tocreate objects in the window. In one example, the toolbox includes alogic table as a type of tool. In one implementation, it is possible fora user to select the logic table as a tool from the toolbox and create alogic table as an object in the window.

In one instance, a “logic table” means a tool used to indicate thetruth-value of a compound statement for every truth-value of itscomponent propositions. The logic table can be used to indicate thevalue of an output of a logic provided in the table for every value ofan input.

In one instance, the logical objects in the window are created by thesingle combined programming and running implementation 145 accessing anobject library in a data structure of the database 150, and modifyingthe multimedia computer application. The objects created can include thedisclosed logic tables. The disclosed logic tables include a truthtable, an answer table and a state table.

Truth Table

Truth Table: Overview

FIG. 3 shows one embodiment of the disclosed logic table that can beused as a program object. A table name row 300 a identifies the type ofthe logic table 300. In the present embodiment, the logic table is aTruth Table 300 that allows a user to manipulate properties of objectswithin a multimedia computer application based on conditional logic andBoolean evaluation, which evaluates expressions as True (T) or False(F).

The Truth Table 300 includes logic rows 301, a name column 317, anexpression column 304 and an associated data table 306.

Truth Table: Logic Rows

In the example shown in FIG. 3, five logic rows 305, 308, 308 a, 311,and 315 are shown, but the number of logic rows is not particularlylimited. The logic rows 301 include information regarding incomingproperties such as the name of the incoming properties (name column317), evaluation expressions 304, ditto rows 308 a and associated data306.

Truth Table: Property Name Column

The incoming properties are properties of a program object being wired.In the example shown in FIG. 3, the incoming properties are listed inthe property name column 317 for logic rows 305, 308, 311, and 315,where each of the rows 305, 308, 311, and 315 includes an identifier orribbon name of an incoming property of another object received as aninput. For example, in the logic row 311 of the property name column317, a ribbon name of a button program object is included. The buttonhas a property “clicked”, and the ribbon name of this property isdisplayed in the logic row 311 of the property name column 317.

Truth Table: Evaluation Expressions

The evaluation expressions are conditional statements of the wiredproperties. In the example shown in FIG. 3, the evaluation expressionsare listed in the expression column 304 for the logic rows 305, 308,311, and 315. In one example, each of the rows 305, 308, 311, and 315includes an equal sign. The evaluation expressions are conditional logicstatements that may include alpha or numeric values. In one example, theevaluation expressions default to “=50” (50=current value) as shown inthe logic row 305 of the expression column 304. In some examples, theevaluation expression may include “greater than” or “less than” signs(“<”, “>”) as shown in the logic row 315 of the expression column 304.In other examples, the way that the numeric expression is displayed isnot particularly limited, and may be “=<” or “=>” for “less than orequal to” or “greater than equal to”, respectively. In yet in otherexamples, an expression can include the character “#”. In this instance,the character “#” refers to the current value of the incoming property.For example, in the logic row 315 of the expression column 304,“=0<#<50” is displayed, which can be read as: If the current value (#)is “greater than zero” or “less than 50”, the evaluation is True (T).

Truth Table: Ditto Rows

The logic row 308 a is a ditto row, and is a repeat of a row directlyabove the logic row 308 a. In FIG. 3, logic row 308 a is a repeat of thelogic row 308, which has the name “Ques 1: response”. By way of anexample of how a ditto row is created, a logic row is first created whena property ribbon within a program object is wired to an “Add Logic Row”button. The ditto row is then created when the same property ribbonwithin the program object is wired to the previous logic row. In thepresent example, the logic row 308 is created when the ribbon “Response”in the program object “Ques1” is wired to the “Add Logic Row” button351. When another wire is dragged from the identical ribbon “Response”in the identical program object “Ques1” to the previously created logicrow 308, the “ditto row” 308 a is created just below the previous logicrow 308. It is a repeat of the previous logic row. This allows the tableto evaluate a different expression for the identical ribbon. Forexample, in FIG. 3, the logic row 308 evaluates the ribbon “Response” inthe program object “Ques1” for the words “cat” or “dog”. The next“ditto” row 308 a evaluates the same ribbon in the same program objectfor the word “bird”. Using the same procedure of wiring from theidentical ribbon in the identical program object to its wired row, dittorows can be created for either logic rows 301 or value rows 303.

Truth Table: Now Column

The first column 302 in the Truth Table 300 has the title “Now”. Thisfirst column 302 shows the current state of incoming properties andtheir associated expressions. This column does not move.

Truth Table: Associated Data Columns

The associated data includes the data associated with the incomingproperty of the program object. In the example shown in FIG. 3, theassociated data is included in the associated data table 306, andincludes Boolean properties. A Boolean property has a value of true orfalse. When a new incoming property is wired to the Truth Table 300,each incoming property appears in a new logic row, and the incomingproperty is associated with a value of true or false such that a newlogic row with its associated T/F data in the associated data table 306is created.

Each column in the associated data table 306 represents a “propertystate”, which is a string of Boolean properties such as FFFF or TFFF asshown in FIG. 3. Each T or F value shows the “state” of the associatedincoming property, by evaluating the value of the incoming propertyagainst the expression in the expression column 304. For example, incolumn 4 of the associated data table 306, the “T” in row 305 shows thatthe evaluation of the incoming property “Gauge: number” is “True”. Here,the number in the gauge is equivalent to “50”. The “T” in column 4 ofthe associated data table 306 in row 308 shows that the evaluation ofthe incoming property “Ques1: response” is “True”. Here, the response toQuestion 1 is “cat”, “dog” or “bird”. The “F” in column 4 of theassociated data table 306 in row 311 shows that the evaluation of theincoming property “Button: Clicked” is False. Here, the Button is notclicked.

In one implementation, as more incoming properties are wired to thetable 300, the respective number of columns 306 in the associated datatable 306 is created to show all possible combinations of True (T) andFalse (F). In one instance, when more columns are created than can beshown, a scroll bar 358 appears to allow the columns to be scrolled intoview. The table also can be lengthened or shortened to show more or lesscolumns respectively by moving thin “resize” columns, one of which isshown at 359.

In some examples, a current state column is provided for the currentstate of incoming properties and their associated values, and a columnthat matches all the T and F data in the current state column ishighlighted, thereby becoming a “satisfied” column. In the example shownin FIG. 3, a first column 302 in the associated data table 306 havingthe title “Now” shows the current state of incoming properties and theirassociated values. This column does not move when the columns arescrolled into view. In this example, the currently satisfied column 306a is shown with a white highlight color. If the currently selectedcolumn 306 a moves out of view either by scrolling or by resizing thetable, the “snap” icon 347 appears. When the snap icon 347 is clicked,the selected column 306 a is moved into view, with the columns adjustingaccordingly. A “satisfied” column means that all the True (T) and False(F) data in the column matches the results of the evaluation expressionsin the expressions column 304.

Truth Table: Value Rows

The Truth Table 300 further includes value rows 303. In the exampleshown in FIG. 3, five value rows 321, 328, 329, 330 and 331 are shown,but the number of value rows is not particularly limited. In oneexample, a new value row can be added by either attaching a wire from aprogram object to a “Add Value Row (+)” button 350, or by clicking the“Add Value Row (+)” button 350.

The value rows 303 include expressions to assign values and hold thedata that is exported from the Truth Table 300. The name column of thevalue rows 321, 328, 329, 330 and 331 can be edited to name the categoryof values that the respective row holds. The expression column 304 ofthe value rows 321, 328, 329, 330 and 331 can be used to input identicalor sequential values. In one instance, if identical values are used,that value is inputted in column 304 of the value rows 303. For example,column 304 of value row 321 has an inputted value of “6”, and thus thevalue row 321 repeats the value “6”. If the value row 321 were to holdsequential values, a “-” can be added to the value “6”, so theexpression would be entered as, for example, “6-” rather than “6”. Invalue row 328, each value is non-repetitive, so there is no need toenter an expression in the expression column 304. Individual values alsocan be manually edited to hold custom values that are an exception to asequence of numbers, as is seen in cells 368.

The expressions can reference other value rows by name. For example, inFIG. 3, the expression in column 304 of value row 329 refers to the nameof the value “Points” in column 317 of value row 321. The expression incolumn 304 of value row 329, “=Points +5” means that a value of “5”points is added to each value in the value row 321. Expressions can alsocreate other types of formulas that reference other value rows. Forexample, the expression “=sum (bar 1 . . . bar3)” means that “for eachcolumn, total the values contained in value rows “bar 1”, “bar 2”, and“bar 3”.

The associated data table 306 for the value rows 321, 328, 329, 330 and331 include value fields. The data in the value fields can be alpha ornumeric. The length of the numeric or alpha value data can be anylength. The value field also can hold other types of data. For example,value row 330 holds location and rotation information (XYR) for the“Move Marker” property. This location information includes an objectwith a horizontal “X” and a vertical “Y” location, and a rotation angle“R”. In value row 330 in the associated data table 306, this locationand rotation information is graphically represented by a grid chart andmarker in each cell. A value row can also hold color information. Forexample, in value row 331, each column in the value row 331 of theassociated data table 306 holds a color value that is represented as acolor chip.

Truth Table: Incoming Property Ports

Incoming properties are received as inputs by the Truth Table 300 atincoming property ports. In the example shown in FIG. 3, four incomingproperty ports, 332, 334, 335 and 342 for each incoming property wireare shown. The incoming property ports 332, 334, 335 and 342 allowwiring of a property of another object to the incoming property ports332, 334, 335 and 342. They also allow wiring from the incoming propertyports 332, 334, 335 and 342 to a property of another object, therebymaking the incoming property wires bindable, two-way ports. A two-wayport allows data to be sent to the table, and also allows data to besent out to a program object.

Truth Table: Outgoing Property Ports

The Truth Table 300 also includes outgoing property ports 301 a. Theoutgoing property ports 301 a are interfaces that can send data out fromthe table through attached property wires. In the example shown in FIG.3, four outgoing property ports, 361, 365, 367 and 369 for each incomingproperty wire are shown. In one example, the outgoing property ports361, 365, 367 and 369 can switch between three modes: one-way orread-only binding, two-way binding, and outlet.

In the one-way or read-only binding mode, binding is made from one ofthe outgoing property ports 301 a to a program object such that changesin the properties of the Truth Table 300 would be reflected in theproperties of the wired program object, but not vice versa. The one-way,read-only binding mode is visually represented by a large and a smallrectangle 343 and 344, respectively.

In the two-way binding mode, binding is likewise made from one of theoutgoing property ports 301 a to a program object such that changes inthe properties of the Truth Table 300 would be reflected in theproperties of the wired program object, and vice versa. The two-waybinding mode is visually represented by a small and large dot, 345 a and345, respectively. In the outlet mode, the outgoing property port firesa one-way signal to an inlet port in a program object. A signal is firedwhen the evaluation of the expression becomes True “T”. This signalactivates an inlet action in the program object, such as: Show, Hide, Goto page, and other actions. The outlet binding mode is visuallyrepresented by a small and large triangle, 346.

In the column row, there is a two-way outgoing property port 360 thatsends the current column number to attached program objects. Because ithas a two-way binding mode, it can also receive a column number from awired program object. When it receives a column number from a wiredprogram object, the Truth Table 300 makes that column the selectedcolumn, and the values of the incoming properties change to match thoseshown in the newly selected column.

Truth Table: Value Property Ports

The value rows, 303, 303 a, contain two-way binding property ports onboth the left and right ends of the rows, 321, 328, 329, 330, 331 and391, 394, 393, 382, 383. They can both receive data from programobjects, and send data out to program objects. The value rows, 303, 303a, can be wired on either the left or right end. For example, in FIG. 3,both the wires, 349, 352, for value row, 328, will send the value“correct” from the selected column 306 a in value row 328, or receivedata to change the value “correct” to a different value.

Truth Table: Out Ports and Out Bays

The out ports 384 can be wired to objects to trigger actions when acolumn is satisfied. When a column becomes the current state, the outports 384 fire a one-way signal to an inlet port in a program object tosignal that the column has been satisfied. The out wire bays 381 a, 381b can be used to collect the wires if there are wired columns that arenot in view because the table has been compressed.

Truth Table: Play Controls 356 and Inlet Ports

The Truth Table 300 further includes play controls 356, and severaltypes of inlet ports: judge-now inlet 372, reset table inlet 374,control inlets 376, and power inlet 373. The play controls 356 allow anauthor to step through the columns of the associated data table 306.When the judge-now inlet 372 is clicked, the table evaluates the currentdata. When the reset table inlet 374 is clicked, the table resets allevaluations to the original settings. The control inlets 376 allowexternal buttons to be wired to the table, to control stepping throughits columns or “playing” the table. The functions of the control inlets376 duplicate the functions of the play controls 356, but they can bewired externally. The power inlet allows the tables' capability to judge(evaluate) to be turned on or off. The table's power to judge is “on” bydefault. An inlet wire can be wired from a program object to the powerinlet 373 to externally turn the table's power to judge on or off.

Truth Table: Tween Bar

The Truth Table 300 also includes a Tween bar 398. The Tween barincludes a Tween row 395, Secs-transition row 396 and a Secs-hold row397. Tween row 395 includes XY graphs of lines or curves in therespective cells for columns 2-5 of the data table 306. Visual linerepresentations such as lines and curves represent algorithms which canbe applied to the transition between states. The Secs-transition row 396includes numerical values in the respective cells for columns 2-5 of thedata table 306. The numerical values in the Secs-transition row 396represent the number of seconds within which the transition betweenstates should occur. The Secs-hold row 397 also includes numericalvalues in the respective cells for columns 2-5 of the data table 306.The numerical values in the Secs-hold row 397 represent the number ofseconds of delay before the transition from the previous state to thenew state begins.

The Tween bar 398 can be used to manipulate the transition betweenstates of an object. For instance, an audio object may have twoproperties, volume and XY coordinates, and each of the two propertiesmay have two states, where each of the states has different values fromone another for the respective properties. In one example, a user canset a linear algorithm represented by the straight line as shown in theTween row 395 of column 2 of the data table 306, the “Secs-transition”value to 1 as shown in the Secs-transition row 396 of column 2 of thedata table 306 and the “Secs-hold” value to 3 as shown in the Secs-holdrow 397 of column 2 of the data table 306. In this instance, when thelogic table receives a trigger to change the state of the audio objectfrom an initial state into a subsequent state, there would be a threesecond delay, and then the audio object would move from a first positionto a second position, and the volume would adjust from a first volume toa second volume over a one second transition period in a linear manner.If the user instead sets a “bounce” algorithm represented by a lippedv-shaped curve as shown in the Tween row 395 of column 3 of the datatable 306, the audio object would “bounce” into and/or out of thetransition. If the user instead sets an ease algorithm represented bythe curve as shown in the Tween row 395 of column 4 of the data table306, the audio object would ease in and/or out of the transition. Insome examples, the tween bars have at least about 20 tween transitions.The number of tween transitions a tween bar can have is not particularlylimited. In other examples, each tween transition is represented by avisual line representation and a respective name.

Truth Table: Flowchart and Example

FIG. 4A is a flowchart showing a procedure of a process executed by thesystem 100 in accordance with one embodiment of the disclosed method.

Referring to FIG. 4A and FIG. 5, once the program begins, a graphicaluser interface (GUI) window 504 is displayed on an image display of theuser terminals 110-A and 110-B.

FIG. 4B is a flow chart of one embodiment of a process involved increating objects. This corresponds to subroutine A in FIG. 4B. Referringto FIG. 4B, a toolbox is opened. The toolbox can include a set of toolsincluding a Button tool, Truth Table tool, an Answer Table tool, StateTable tool, and Arena tool, etc. In the example shown in FIG. 5, atoolbox 500 is shown in the window 504. The toolbox 500 includes aButton tool 501, a Truth Table tool 502, and an Arena tool 503. The usercan create an object by selecting the applicable tool in the toolbox 500with a pointing device, then clicking in the window 504 to create therelated program object.

FIG. 5 shows the window 504 as displaying six objects 506, 508, 510,512, 514 and 516. The object 516 is a Truth Table 516 created by theTruth Table tool 502. The Truth Table 516 has a visual graphicscomponent 516 a. Although not shown, the Truth Table 516 may alsoinclude a message center. The message center in general provides a listof the properties for an object, where a user can link propertiesbetween objects by dragging a wire from one of the properties listed toa property of another object. The visual graphics component 516 a of theTruth Table 516 includes logic rows 530, 532 and 534, a name column 536,an expression column 538, a value row 540 and an associated data table545.

The other objects include buttons 506, 508 and 510, which are buttonobjects created by the button tool 501, and the arena 514, which is anarena object created by the arena tool 503. Although in the exampledescribed later, the buttons 506, 508 and 510 and the arena 514 are usedfor linking with the Truth Table 516, other types of objects also can beused for linking with the truth table, such as sketch, rectangle, oval,line, animation path, text, text input, checkbox, slider, clock, othertables and other program objects. These objects can be created by toolssuch as pencil, oval, slider, etc. The number of objects that can becreated in the 504 is also not particularly limited.

FIG. 4C is a flow chart of the process involved in linking the buttons506, 508 and 510 to the Truth Table 516. This corresponds to subroutineB in FIG. 4C. The subroutine begins with a call to subroutine A.Referring to FIGS. 4C and 5, the buttons 506, 508 and 510 have visualgraphics components 506 a, 508 a and 510 a and message centers 506 b,508 b and 510 b, respectively. In the example shown, the visual graphicscomponents 506 a, 508 a, 510 a are shown as paint brushes, but thevisual graphics components can take any form a user desires.

Referring to FIGS. 4C and 5, links between a property of the buttons506, 508 and 510 and the Truth Table 516 are established by draggingwires 518, 520 and 522 from the properties in the respective messagecenters 506 b, 508 b and 510 b of the buttons 506, 508 and 510 anddropping the wires on respective input wire anchors 524, 526 and 528 onthe left edge of the visual graphics component 516 a of the Truth Table516 (step 4021). The input wire anchors 524, 526 and 528 are on the leftedge of the value rows 530, 532, and 534. If the wire is neither beingdragged nor dropped, the process is in a wait state until a drag or dropoperation is performed.

Once the wires 518, 520 and 522 are dropped on the input wire anchors524, 526 and 528, identifiers or ribbon names of the incoming propertiesof the buttons 506, 508 and 510 are provided in the name column 536 ofthe respective value rows 530, 532 and 534. For instance, the propertybeing wired for button 506 is the visibility of the button whenselected. In the name column 536 of the value row 530, “Red Select:Visible” appears.

Dropping of the wires 518, 520 and 522 results in the system 100 linkingthe properties of the buttons 506, 508 and 510 to property states asdisplayed in the data table 545. The term “property state” herein meansa combinatorial expression of any value and any number of values. Theproperty states enumerate all possible permutations of any number ofincoming properties with a numerical value property, which serves as anoutput of the truth table. In one instance, the property state is acombinatorial expression of two values, true or false. In this instance,the property state can be a string of values such as TTF with the numberof properties corresponding to the number of inputs. In the presentexample, there are three inputs, and the total collection of propertystates would be: TTT, FTT, TFT, FFT, TTF, FTF, TFF, FFF.

In FIG. 5, TTT, TTF, FFT, TFT and FTT are provided in columns that arenumbered 0, 4, 5, 6, and 7, respectively. The column numbers 0, 4, 5, 6and 7 identify each of the respective columns, and represent a propertystate.

Column numbers are employed to associate between a property state and anincoming property of a program object. For example, as shown in FIG. 5,column numbers 0, 4, 5, 6 and 7 are provided in column row 535 that hasan outlet port 537 at the far right side of the column row 535. When theoutlet port 537 is wired to a property in a program object (not shown),the outlet port 537 sends a column number to the program object. Theoutlet port 537 is a two-way port, so the program object can also send acolumn number to outlet port 537. When the Truth Table 516 receives thenumber from the program object, the appropriate column becomes theselected column, and the values of the attached inlet properties arechanged to those shown in the selected column.

In the instance shown in FIG. 5, the property states TTT, TTF, FFT, TFTand FTT have column numbers 0, 4, 5, 6 and 7, respectively. Column 0 hasa current or “now” property state. Column 6 is shown to be the currentlyselected property state. In the instance shown in FIG. 5, the value bar545, which has the name “Arena 1: Page-numbers”, has values of 6, 0, 5,6, 7, 8, for column numbers 0, 4, 5, 6 and 7, respectively. The valuebar 545 is wired though a property port 550 to the Arena object 514 viaa wire 552. Specifically, the wire 552 is wired to the “Page-number”ribbon which is part of the message center 514 b. When a column issatisfied in the Truth Table 516, the value bar port 550 sends the valuethat is in the value bar 545 of the selected column number 6 to theArena's 514 message center 514 b. In this instance, that number controlsthe page that is shown in the Arena 514, the controlling number beingpage 6. This page number is shown in a control bar 514 c for the Arena514.

In another instance, a user may have a second value bar with values 20,30, 40, and 50, for the columns 4, 5, 6 and 7 respectively. In oneexample, the second value bar can be named as “Points”. In thisinstance, the numbers 20, 30, 40 and 50 are point values that are sentto a text object that displays the points being earned.

Although not shown, in one instance, evaluation expressions for theincoming properties are displayed in the expression column 538 of thevalue rows 530, 532 and 534. In this instance, these expressions havethe format “=expression”. In one implementation, the expressions wouldevaluate for True (T) or False (F) as the incoming ribbons have a valueof True (T) or False (F). The expressions for this example couldinclude: “=T”, “=F”, “=T|F”. The expression “=T|F” means that the valueof the incoming property could be evaluated as True (T) when theincoming property is True (T) and when the incoming property is False(F).

New value rows can be created in a number of ways. One way is to attacha wire from a program object to either the left-side or right-sideproperty port 550 or drag and drop the wire on the “Add Value Bar”button 545. Another way is to click the “Add Value Bar” button 545 toadd a new value bar.

In the instance shown in FIG. 5, the “Submit Mix” button 512 is wired512 b to the “Feedback Arena” object. The outlet “Click” for the “SubmitMix” button is wired to the inlet “Show” for the Arena object. When thebutton “Submit Mix” is clicked, the Feedback Arena is shown, which makesits feedback information visible to the user. In another instance, the“Submit Mix” button, or another program object, could be wired to hidethe Feedback Arena when it is not needed.

Answer Table

Answer Table: Overview

FIG. 6A shows one embodiment of the disclosed logic table that can beused as a program object. A name row 600 a identifies the type of thelogic table 600. In the present embodiment, the logic table is an AnswerTable 600 that allows the table to assess user answers and responses,and to manipulate properties of objects within a multimedia computerapplication based on conditional logic and the sequence of the answersor responses.

FIG. 6A shows an example of an Answer Table 600. The Answer Table 600shown in FIG. 6A is similar to the Truth Table 300 in that the AnswerTable 600 also includes the following items which function in a similarway to the way that they function in the Truth Table 300. In thisregard, reference is made to the description above for the correspondingitems in the Truth Table 300.

-   -   table name row 600 a    -   logic rows 601    -   property name column 617    -   expression column 604    -   ditto rows 608 a    -   “Now” column 602    -   associated data table 606    -   value rows 603    -   incoming property ports 632, 635    -   outgoing property ports 644, 645, 646    -   value property ports 648, 649, 651, 652, 653, 654    -   out ports 684    -   out wire bays 681 a, 681 b    -   play controls 656    -   judge now inlet 672    -   reset table inlet 674    -   control inlets 676    -   power inlet 673    -   Tween bar 698.

Answer Table: Answer Judging

In one example, the Answer Table 600 differs from the Truth Table 300 inhow expressions are judged in the associated data columns. Withreference to FIG. 6A, the associated data columns evaluate expressionswith a method of checks 606 b and numbers 606 a to evaluate expressionsin terms of sequence. Each column is considered to be one “answer”. Theuser must satisfy each logic row expression in the order that is shownin the associated data table 606. A logic row expression is satisfiedwhen its expression is evaluated as True (T).

If a cell in the data columns has a checkmark 606 b, the expression inthat logic row must be true, and it can be true in any sequence. When anexpression can be true in any sequence, the criteria for that column tobe satisfied as an answer is that all expressions with a checkmark areevaluated as True (T), but it does not matter in what sequence thoseexpressions are evaluated as True (T).

If a cell in the data column has a number 606 d, then the expression inthat logic row must be both true, and it must become true in thesequence shown by the series of numbers in the associated data cells inthe column. For example, in FIG. 6A, in column 3, logic row 608 mustbecome true first because the associated data cell has a sequence number“1”. Then logic row 609 must become true after logic row 608 because theassociated data cell has a sequence number “2”. Then logic row 608 amust become true after logic row 608 because the associated data cellhas a sequence number “3”. If the user's choices cause these propertiesto become true in difference sequence, the answer in column 3 is notsatisfied.

Checkmarks and sequence numbers can be combined. For example, in FIG.6A, in column 2, logic row 608 must become true before logic row 608 a,but logic 608 can become true in any sequence, before, after, orin-between when the logic rows 608 and 608 a become true.

The Answer Table 600 uses a notation system that uses checkmarks,numbers and characters to represent different forms of sequencing. Thissystem of sequence notation is described in FIG. 6B.

When a cell in the associated data columns 606 is satisfied, cellchanges color. For example, in FIG. 6A, the cell in column 1 for logicrow 608 a has been satisfied, so the color in cell of column 1 for logicrow 608 a has changed to green 606 c. If a cell has been satisfied, itscolor has changed to green, and the column is also the currentlyselected column, the color of the satisfied cells then changes to alighter green, as shown in the cell of column 2, logic row 608 a.

The Answer Table 600 judges from left to right. That is, the AnswerTable 600 evaluates column 1 first, then moves to column 2, then tocolumn 3, etc. and continues to move to the right until a column that isfully satisfied is reached. The Answer Table 600 judges that a column isfully satisfied when all cells in the column that are marked with acheckmark or sequence number have been satisfied. When that happens, theentire column turns green, including the column number, the logic cellsand the value cells. For example, in FIG. 6A, column 5 is fullysatisfied. If the Answer Table 600 cannot find a column that issatisfied, the Answer Table 600 starts again with column 1, and proceedsto evaluate each column from left to right until the Answer Table 600finds a column that is satisfied. The Answer Table 600 repeats thispattern of judging unless the table is turned “off”.

Answer Table: Branching

The Answer Table 600 includes a system of branching. This is shown inthe Branching Row 610. When a column is satisfied, the Answer Table 600follows the branching set by the branching button 610 a in its column.The branching button can be clicked to cycle between three types ofbranching:

1. Continue: shown as a right-facing arrow 610 a.

This branching continues to evaluate from left to right. Evaluationmoves to the next column.

2. Try Again: shown as an arrow with a “reversed-“C” curve that pointsto the left.

This branching stops the left-to-right judging scan, and waits for moreinput from the user.

3. Exit: shown as an arrow that points down.

This branching stops the judging scan. The Answer Table 600 is exited,and its power is turned “off”.

Answer Table: Status Port and Status Message

The Answer Table 600 includes a Status Port and a Status Message 610 b.This shows the current operating status of the Answer Table 600. Thestatus port is a one-way, read-only port that sends out the numberassociated with each status condition. The status message displays thecurrent status condition, and the number associated with that statuscondition. For example, in FIG. 6, the Status Message 610 b shows thatthe Answer Table 600 is in a “Ready” status condition, which means it isready to receive further input. The number of status conditions will beapproximately five status conditions, but are not limited to thatamount.

Answer Table: Example

FIG. 7 is one example of an Answer Table in use. In this embodiment, ananswer judging multimedia computer application is provided that showshow the Answer Table judges for answers in different sequences.

FIG. 7 shows a window 700 displaying the following objects: a checkbox720, a slider 730, an animal text input field object 740, a reset button750, and both a color rectangle feedback object 760 and a text feedbackobject 770. There is also an Answer Table object 705. The

Answer Table object was created using the Answer Table tool 703available in the toolbox 702. The other objects 720, 730, 740, 750, 760and 770 were created respectively with a checkbox tool, a slider tool, atext input tool, a button tool, a rectangle tool, and a text tool in thetoolbox 702.

Properties of the checkbox 720, the slider 730, and the animal inputtext 740—are wired into the logic rows 710, 711, 712 respectively of theAnswer Table object 705. A Checked property in a message center 722 ofthe checkbox 720 is wired to the logic row 710 in the Answer Tableobject 705. A Value-% property in the message center 732 of the slider730 is wired to the logic row 711 in the Answer Table object 705. A Textproperty in the message center 742 of the animal text input field object740 is wired to the logic row 712 in the Answer Table object 705. In theExpression Column 718, an expression has been entered to evaluate eachincoming property. When an expression is evaluated as True (T), then theexpression is determined to have been satisfied.

Associated data columns 713—columns 1, 2, 3, 4, 5—contain commands tojudge both if the properties 710, 711, 712 have been satisfied, and inwhat sequence the properties 710, 711, 712 have been satisfied. If aproperty can be satisfied in any order, its cell has a checkmark. If aproperty must be satisfied in a specific sequence, its cell has asequence number. For example, in Column 1, the properties 710, 711, 712must be satisfied in sequential order. In Column 2, the property 711must be satisfied first, then property 710 must be satisfied, and thenproperty 712 must be satisfied. In Column 3, the three properties can besatisfied in any order. In Column 1, the property 711 can be satisfiedin any order, but the property 712 must be satisfied before the property710 is satisfied. Column 5 has no judging criteria, so it “catches” anyresponses that do not match the previous columns 1, 2, 3, and 4.

Below the logic rows are two value rows 716 and 717. The value row 716changes the color of the color feedback rectangle 760, depending onwhich column is fully satisfied. The Fill property in the message centerof the color feedback rectangle 760 is wired to the value row 716 in theAnswer Table 705. The value row 717, changes the text of the textfeedback object 770, depending on which column is fully satisfied. TheText property in the message center of the text feedback rectangle 770is wired to the value row 717 in the Answer Table 705.

The columns 713 show that all three properties 710, 711, 712 have beensatisfied, but they were not all satisfied in the order that is requiredby some of the columns. For a property to be satisfied in the columns,it must be evaluated as True (T) and it must be done in the orderrequired by the column. When a property in a column is satisfied, thecolor of the cell changes, for example, to green 719. In this exampleshown in FIG. 7, Column 3 has been fully satisfied. When a column isfully satisfied, all properties in all those logic rows which are beingjudged with a checkmark or a sequence number have been satisfied. When acolumn is fully satisfied, it is selected by the Answer Table object705. When a column is selected, the column number cell changes, forexample, to white. In the example shown in FIG. 7, column 3 is selectedso that its column number cell is, for example, white. When a column issatisfied, its values are sent from outgoing property ports 701 to theproperties in external program objects to which they are wired. In thisexample shown in FIG. 7, because Column 3 is selected, the value row 716has sent the color red to the color feedback rectangle, and the valuerow 717 has sent the text “Got it!” to the text feedback object 770.

Column 4 is also satisfied, but it is not selected. That is because theAnswer Table object 705 judges columns from left to right. In otherembodiments, an Answer table object can judge columns in a differentorder. Branching 702 controls what the Answer Table object 705 does whena column is satisfied and is selected. In this example, column 3 issatisfied and selected. The branching 702 for column 3 has been set to“Try Again”, which means that the Answer Table object 705 sends out thedata values associated with this column, and pauses to wait for moreresponses from the user. The Answer Table object 705 does not continuejudging left to right, so it has not selected column 4, even though itis fully satisfied. If the branching 702 for column 3 had been set to“Continue” (not shown), the Answer Table object 705 would continuejudging left to right, and would recognize that column 4 is fullysatisfied. If the branching for column 4 has been set to “Try Again”,the Answer Table would then stop at Column 4, and send out a value datato those properties wired to the outgoing property ports 701.

This example also includes a Reset button 750. The out “Click-start” ina message center 752 of the Reset button 750 is wired to a Reset Tableinlet 780 in the Answer Table object 705. When the Reset button 750 isclicked, all judging results are cleared, all the column cells change togray to show they have not judged the incoming properties, all theincoming properties are reset to their default values, and the AnswerTable object 705 waits for responses from the user that it can judge.

In one embodiment, when this answer demonstration is run, the messagecenters, wires and the Answer Table object 705 hide (not shown). Theuser is directly controlling the three objects, and receives both colorand text feedback. In another embodiment, when this answer demonstrationis run, the message centers, wires and the Answer Table object 705 arevisible to the user (not shown).

State Table

State Table: Overview

FIG. 8A shows one embodiment of the disclosed logic table that can beused as a program object. A name row 800 a identifies the type of thelogic table 800. In the present embodiment, the logic table is a StateTable 800 that allows the table to store multiple values for propertiesof objects within a multimedia computer application to create a seriesof “states” for wired program objects that can be played back in a timedsequence using a Timeline.

The State Table 800 shown in FIG. 8A is similar to the Truth Table 300in that the State Table 800 also includes the following items thatfunction in a similar way to the way that they function in the TruthTable 300. In this regard, reference is made to the description abovefor the corresponding items in the Truth Table 300.

-   -   table name row 800 a    -   property name column 817    -   expression column 804    -   ditto rows 808 a    -   “Now” column 802    -   associated data table 806    -   value rows 803    -   value property ports 848, 849, 851, 851 a, 852, 853, 854    -   out ports 884    -   out wire bays 881 a, 881 b    -   play controls 856    -   judge now inlet 872    -   reset table inlet 874    -   control inlets 876    -   power inlet 873    -   Tween bar 898.        In one example, the state table 800 does not use logic rows,        incoming property ports or outgoing property ports.

State Table: States

With reference to FIG. 8A, the State Table 800 uses the value rows 803,803 a to assemble and store multiple values for the properties ofprogram objects that are wired to the State Table 800. For example, inFIG. 8A, the value rows 803 hold multiple values for each incomingproperty 821, 828, 829, 808 a, 833, 836, 830, 831. Values can includetext, numeric, screen location, object rotation, color and other typesof values. For the value row 828, its property name is “Fish: name”, andit can have 5 values: “shark”, “whale”, “guppy”, “catfish”, and “trout”.Each column shows a value for a group of wired properties. This is a“state” for that group of wired properties. For example, in FIG. 8A, forcolumn 3, which is the currently selected column in FIG. 8A, the valuesfor value rows 821, 828, 829, 808 a, 833, 836, 830, 831 are respectively“13”, “guppy”, “Indian Ocean”, “river”, “3”, “aquarium”, approximatelylower-right screen coordinates and a 45 degree rotation angle for thewired property “Move Marker” as shown visually by the location chartwithin that cell, and the color yellow as shown visually by a color chipwithin that cell. Collectively, this group of values, is the “state” forcolumn 3. When a column is selected, the values in its cells are sent tothe properties that are wired to the State Table 800. When a differentcolumn is selected, the properties that are wired to the State Table800, receive a different set of values. As a result, a group ofproperties can present multiple “states” in response to user or programactions, or step through multiple “states” sequentially as a progressivesequence or animation because they are wired to a State Table 800, andthe columns of the State Table 800 are changing accordingly to changethe state of each wired property.

Properties 803 are wired to the value rows with two-way binding ports,so the State Table 800 can both send values to the wired properties, andalso receive values from the wired properties.

State Table: Controls and Control Inlets

The State Table 800 can be controlled with the same items that the TruthTable 300 uses. These include the Play Controls 856 and the ControlInlets 876. The Play Controls 856 allow an author to step through the“states” of a State Table 800 while editing a multimedia computerapplication. The Control Inlets 876 allow external buttons to be wiredto the State Table 800, to control stepping forward or backward throughits columns or “playing” the table in a sequence.

State Table: Timeline

With reference to FIGS. 8A-F, the State Table 800 can also be controlledwith its integrated timeline 892. The timeline 892 allows a duration 825to be set, which creates a total length of time. On the right side ofthe timeline 892, there is a scaled timeline. Dots 823 can be draggedfrom each column to the scaled timeline to establish a time within thetotal duration 825 at which that column is displayed. This is the “starttime” for that column. While a dot is pressed and dragged along thescaled timeline, the dot's color changes 824 and its time location alongthe timeline is shown as text above the dot 824.

The Timeline 892 has a “scrubber” control button 825. This “scrubber”button can be dragged along the scaled timeline. As it is dragged acrossthe scaled timeline, the selected column changes as the “scrubber” movespast “start time” dots. This allows an author to test a sequence bymoving the “scrubber” back and forth along the Timeline.

The Timeline 892 works together with the Tween Bar 898 in the StateTable 800. When a transition time is set in the Secs-Transition row 896of the Tween Bar 898, that number of seconds is shown visually in theTimeline as a blue bar 823 a extending from the Start Time dot to theright as appropriate to show the number of transition seconds. When ahold time is set in the Secs-Hold row 897 of the Tween Bar 898, it tellsthe State Table 800 and the Timeline 892 to hold that number of secondsbefore displaying the next column. This creates a “start time” for thenext column, so the “start time” dot 823 associated with that columnmoves along the scaled timeline to reflect the number of hold seconds897. If a “start time” dot 823 for a column is moved, the hold seconds897 for the previous column change accordingly.

The Timeline 892 has an “Info” button 844. When the Info button 844 isclicked, a new “Timeline Data” table 844 a appears. It shows the “starttimes” 823 a, 824 a, for each column as a time-formatted number. These“start times” reflect the position of the “start time” dots 823, 824 onthe scaled timeline. For example, in FIG. 8A, the “start time” dot 823is positioned at 00:35 along the scaled timeline. This time number 00:35is also in the “Timeline Data” 844 a start time field 823 a. The numberof “start time” fields in the “Timeline Data” table 844 a reflects thenumber of columns that are in the State Table 800. The time value ineach “start time” field can be edited. As the “start time” fields areedited, the “start time” dots 823 move on the Timeline accordingly tomatch the times that are entered into the “Timeline Data” 844 a “starttime” fields.

The “Timeline Data” table 844 a has a “scrubber” 825 a that emulates thefunction of the “scrubber” 825 in the Timeline 892. The “Timeline Data”table 844 a can be closed by clicking the Close button “X” 844 b.

The Timeline 892 is also available as independent Timeline 837 a. TheToolbox 838 has a Timeline tool 837. When it is clicked, it creates aTimeline 837 a that is independent of the State Table 800. Properties ofprogram objects can be wired directly to “start time” dots 837 b alongthe scaled Timeline. This allows properties and inlet actions to bewired to the Timeline, which allows series of properties to initiate orinlet actions to initiate in a timed sequence.

State Table: Example

FIG. 9 provides one example of a State Table in use. In this embodiment,a state table multimedia computer application for teaching how acamera's aperture setting affects the depth of field.

FIG. 9 shows a window 900 displaying several objects: a tree backgroundobject 930, depth of field scale 940, a camera object 980 that includesa left aperture button 950, a right aperture button 960, and an aperturesetting display 970. There is also a State Table object 905. The StateTable object 905 was created using a State Table tool 903 available in atoolbox 902.

Properties of the aperture setting display 970, the tree backgroundobject 930, and the depth of field scale 940—are wired into the valuerows 910, 911, 912 respectively of the State Table object 905. The valuecolumns 912—columns 1, 2, 3, 4, 5—contain 5 states of values for theaperture setting display 970, the tree background object 930, and thedepth of field scale 940. The aperture setting display 970, the treebackground object 930, and the depth of field scale 940 are each wiredto the State Table object 905. A Blur property 932 in the message center931 of the tree background object 930 is wired to a port in a StateTable object bay 922. A Size-Height property 942 in a message center 941of the depth of field scale 940 is wired to a port in the State Tableobject bay 922. A Text property 972 in a message center 971 of theaperture setting display 970 is wired to a port in the State Tableobject bay 922.

Column 3 in the State Table object 905 is currently selected, so thosevalues are displayed in the aperture setting display 970, the treebackground object 930, and the depth of field scale 940, respectively.The aperture setting display 970 shows the value 5.6 f, which is in theselected column 914 of the State Table object 905 in value row 910. Thetree background object 930 shows a 30% blur, which is in the selectedcolumn 914 of the State Table object 905 in value row 911. The height ofthe depth of field scale 940 shows 200 pixels, which is in the selectedcolumn 914 of the State Table object 905 in value row 912. Since thereare 5 columns in the State Table object 905, the camera simulation canshow 5 states of the wired properties. The number of columns in theState Table object 905 can vary depending on the application and is notparticularly limited.

In this example, the left aperture button 950 and the right aperturebutton 960 of the camera object 980 are buttons that can be used tochange the state of the simulation. They act in this simulation asaperture buttons would act on a physical camera. An out “Click-start”property 952 in a message center 951 of the left aperture button 950 iswired to a “go back one step” control inlet 920 in the State Tableobject 905. When the left aperture button 950 is clicked, the StateTable object 905 moves backward one column and changes the values of thewired properties accordingly. An out “Click-start” property 962 in amessage center 961 of the right aperture button 960 is wired to a “goforward one step” control inlet 921 in the State Table object 905. Whenthe right aperture button 960 is clicked, the State Table object 905moves forward one column and changes the values of the wired propertiesaccordingly.

While a Timeline is not used in this example, in other embodiments aTimeline could be used to present a sequence of all five statessequentially.

In some embodiments, when this simulation is run, the message centers,wires and the State Table object 905 are hidden to the user (not shown).The user is directly controlling the camera and seeing results. However,in other embodiments, when this simulation is run, the message centers,wires and the State Table object 905 are visible to the user (notshown).

FIG. 10 is a schematic diagram of a computer system 2300. The system2300 can be used for the operations described in association with any ofthe computer-implement methods described herein. The system 2300 caninclude various forms of digital computers, such as laptops, desktops,workstations, personal digital assistants, servers, blade servers,mainframes, and other appropriate computers. The system 2300 can alsoinclude mobile devices, such as personal digital assistants, cellulartelephones, smartphones, and other similar computing devices.Additionally the system 2300 can include portable storage media, suchas, Universal Serial Bus (USB) Flash drives. For example, the USB Flashdrives may store operating systems and other applications. The USB Flashdrives can include input/output components, such as a wirelesstransmitter or USB connector that may be inserted into a USB port ofanother computing device.

In this example, the system 2300 includes a processor 2310, a memory2320, a storage device 2330, and an input/output device 2340. Each ofthe components 2310, 2320, 2330, and 2340 are interconnected using asystem bus 2350. The processor 2310 is capable of processinginstructions for execution within the system 2300. The processor 2310may be designed using any of a number of architectures. For example, theprocessor 2310 may be a CISC (Complex Instruction Set Computers)processor, a RISC (Reduced Instruction Set Computer) processor, or aMISC (Minimal Instruction Set Computer) processor.

In some implementations, the processor 2310 is a single-threadedprocessor. In some implementations, the processor 2310 is amulti-threaded processor. The processor 2310 is capable of processinginstructions stored in the memory 2320 or on the storage device 2330 todisplay graphical information for a user interface on the input/outputdevice 2340.

The memory 2320 stores information within the system 2300. In someimplementations, the memory 2320 is a computer-readable medium. In someimplementations, the memory 2320 is a volatile memory unit. In someimplementations, the memory 2320 is a non-volatile memory unit.

The storage device 2330 is capable of providing mass storage for thesystem 2300. In some implementations, the storage device 2330 is acomputer-readable medium. For example, the storage device 2330 may be afloppy disk device, a hard disk device, an optical disk device, or atape device.

The input/output device 2340 provides input/output operations for thesystem 2300. In some implementations, the input/output device 2340includes an input device (such as a keyboard, a pointing device such asa mouse or a trackball; a touch screen; a finger gesture device; etc.).In some implementations, the input/output device 2340 includes a displayunit for displaying graphical user interfaces.

The features described herein can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations of them. The apparatus can be implemented in a computerprogram product tangibly embodied in an information carrier, e.g., in amachine-readable storage device or in a propagated signal, for executionby a programmable processor; and method steps can be performed by aprogrammable processor executing a program of instructions to performfunctions of the described implementations by operating on input dataand generating output. The features can be implemented advantageously inone or more computer programs that are executable on a programmablesystem including at least one programmable processor coupled to receivedata and instructions from, and to transmit data and instructions to, adata storage system, at least one input device, and at least one outputdevice. A computer program is a set of instructions that can be used,directly or indirectly, in a computer to perform a certain activity orbring about a certain result. A computer program can be written in anyform of programming language, including compiled or interpretedlanguages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors ofany kind of computer. Generally, a processor will receive instructionsand data from a read-only memory or a random access memory or both. Theessential elements of a computer are a processor for executinginstructions and one or more memories for storing instructions and data.Generally, a computer will also include, or be operatively coupled tocommunicate with, one or more mass storage devices for storing datafiles; such devices include magnetic disks, such as internal hard disksand removable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and Flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,ASICs (application-specific integrated circuits).

To provide for interaction with a user, the features described hereincan be implemented on a computer having a display device such as a CRT(cathode ray tube) or LCD (liquid crystal display) monitor fordisplaying information to the user and an input device (such as akeyboard; a pointing device such as a mouse or a trackball; a touchscreen; a finger-gesture device; etc.) by which the user can provideinput to the computer.

The features can be implemented in a computer system that includes aback-end component, such as a data server, or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system can be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include a local area network (“LAN”),a wide area network (“WAN”), peer-to-peer networks (having ad-hoc orstatic members), grid computing infrastructures, and the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork. The relationship of client and server arises by virtue ofcomputer programs running on the respective computers and having aclient-server relationship to each other.

One of the advantages of the disclosed method is that assets can bereplaced directly from the desktop of an operating system. Moreover,assets can be replaced in a plurality of objects without replacing themone by one as is the case with traditional authoring programs. Evenfurther, assets can be replaced without the use of pull-down menus. Assuch, the disclosed method allows an asset in a plurality of objects tobe replaced efficiently.

While the disclosed system and method have been described in conjunctionwith a preferred embodiment, it will be obvious to one skilled in theart that other objects and refinements of the disclosed system andmethod may be made within the purview and scope of the disclosure.

The disclosure, in its various aspects and disclosed forms, is welladapted to the attainment of the stated objects and advantages ofothers. The disclosed details are not to be taken as limitations on theclaims.

Aspects:

1. A non-transitory computer-readable medium having computer executableinstructions stored thereon for a computer apparatus to execute a methodof associating a plurality of program objects using a logic table as aprogram object in a graphical user interface (GUI) system, the GUIsystem being implemented by a combined programming and runningimplementation that interacts with a multimedia computer application,the combined programming and running implementation being provided onthe computer apparatus that includes a database and an image display,the GUI system being displayed on the image display, the methodcomprising:

displaying a first program object, a second program object and the logictable in the GUI system by the combined programming and runningimplementation accessing the first program object, the second programobject and the logic table from an object library stored in thedatabase, modifying a multimedia computer application and storing themodified multimedia computer application in the database;

linking a property of the first program object as an input to the logictable by the combined programming and running implementation furthermodifying the multimedia computer application and storing the furthermodified multimedia computer application in the database;

linking the property of the first program object to a property state ofthe logic table by the combined programming and running implementationfurther modifying the multimedia computer application and storing thefurther modified multimedia computer application in the database, theproperty state including a value statement, the property of the firstprogram object being linked to the value statement, and the propertystate being linked to a numerical value property of the logic table asan output;

either one of (1) linking the numerical value property of the logictable as the output to a property of the second program object, or (2)linking the numerical value property of the second program object to theoutput, by the combined programming and running implementation furthermodifying the multimedia computer application and storing the furthermodified multimedia computer application in the database, therebylinking the property of the first program object and the property of thesecond program object through the logic table.

2. The computer-readable medium of aspect 1, wherein the value statementis a true or false statement.

3. The computer-readable medium of any of aspects 1 and 2, wherein thevalue statement is an alphanumerical statement.

4. The computer-readable medium of any of aspects 1-3, furthercomprising evaluating the property of the first program object based onan evaluation expression, and linking the property of the first programobject to the value statement based on the evaluation.5. The computer-readable medium of any of aspects 1-4, wherein a programobject other than the first program object is linked as the input, theproperty state includes a plurality of value statements where one of thevalue statements is linked to a property of the program object otherthan the first program object that is linked as the input, and theevaluation expression references the property of the program objectother than the first program object that is linked as the input, and theevaluation is based on the reference to the property of the programobject other than the first program object that is linked as the input.6. The computer-readable medium of any of aspects 1-5, wherein the logictable includes an input port and an output port for linking theproperties of the program objects.7. The computer-readable medium of any of aspects 1-6, wherein the logictable includes a value property port for linking the value statements.8. The computer-readable medium of any of aspects 1-7, wherein the logictable includes an out wire bay for collecting a plurality of links.9. The computer-readable medium of any of aspects 1-8, wherein the logictable includes a play control, wherein the play control allows a user tomove from one property state to another property state.10. The computer-readable medium of any of aspects 1-9, wherein thelogic table includes a tween bar to manipulate the transition betweenone property state to another property state.11. A non-transitory computer-readable medium having computer executableinstructions stored thereon for a computer apparatus to execute a methodof associating a plurality of program objects using a logic table as aprogram object in a graphical user interface (GUI) system, the GUIsystem being implemented by a combined programming and runningimplementation that interacts with a multimedia computer application,the combined programming and running implementation being provided onthe computer apparatus that includes a database and an image display,the GUI system being displayed on the image display, the methodcomprising:

displaying a plurality of program objects and a logic table in the GUIsystem by the combined programming and running implementation accessingthe plurality of program objects and the logic table from a databasestructure that includes an object library in the database, and modifyingthe multimedia computer application;

linking a property of each of the program objects as respective inputsto the logic table by the combined programming and runningimplementation further modifying the multimedia computer application andstoring the modified computer application;

linking each of the properties of the program objects to a propertystate of the logic table by the combined programming and runningimplementation further modifying the multimedia computer application andstoring the modified computer application, the property state includinga plurality of value statements, the properties of the plurality ofprogram objects being linked to each of the respective value statements,the plurality of value statements being arranged sequentially in theproperty state, and at least one sequential arrangement of the valuestatements being linked to a numerical value property of the logic tableas an output, the at least one sequential arrangement of the valuestatements also being linked to an answer;

either one of (1) linking the numerical value property of the logictable as the output to a property of another program object or (2)linking a numerical value property of another program object to theoutput, by the combined programming and running implementation furthermodifying the multimedia computer application and storing the furthermodified multimedia computer application.

12. The computer-readable medium of aspect 7, wherein the logic tableincludes a plurality of property states and a plurality of answers, andeach of the property states are linked to one of the answers.

13. A non-transitory computer-readable medium having computer executableinstructions stored thereon for a computer apparatus to execute a methodof associating a plurality of program objects using a logic table as aprogram object in a graphical user interface (GUI) system, the GUIsystem being implemented by a combined programming and runningimplementation that interacts with a multimedia computer application,the combined programming and running implementation being provided onthe computer apparatus that includes a database and an image display,the GUI system being displayed on the image display, the methodcomprising:

displaying a first program object, a second program object and a logictable in the GUI system by the combined programming and runningimplementation accessing the first program object, the second programobject and the logic table from an object library in the database, andmodifying the multimedia computer application;

linking a property of a first program object to the logic table by thecombined programming and running implementation further modifying themultimedia computer application and storing the modified computerapplication in the database, the logic table including a plurality ofproperty states, the property of the first program object being suchthat the first program object is capable of switching from one propertystate to another property state in the logic table;

linking the property of the first program object to one of the propertystates of the logic table by the combined programming and runningimplementation further modifying the multimedia computer application andstoring the modified multimedia computer application in the database,each of the property states including a value statement, each of theproperty state being linked to a numerical value property of the logictable as an output;

either one of (1) linking the numerical value property of the logictable as the output to a property of the second program object or (2)linking the numerical value property of the second program object to theoutput by the combined programming and running implementation furthermodifying the multimedia computer application and storing the modifiedmultimedia computer application in the database, the value statementcontained in each of the property states defining the property of thesecond program object.

14. A computer apparatus comprising a computer-readable medium withprogram instructions when executed by a processor to process and displaya plurality of images on an image display, and a control unit adapted toexecute a method of associating a plurality of program objects using alogic table as a program object in a graphical user interface (GUI)system, the GUI system being implemented by a combined programming andrunning implementation that interacts with a multimedia computerapplication, the combined programming and running implementation beingprovided on the computer apparatus that includes a database and an imagedisplay, the GUI system being displayed on the image display, the methodcomprising:

displaying a first program object, a second program object and the logictable in the GUI system by the combined programming and runningimplementation accessing the first program object, the second programobject and the logic table from an object library stored in thedatabase, modifying a multimedia computer application and storing themodified multimedia computer application in the database;

linking a property of the first program object as an input to the logictable by the combined programming and running implementation furthermodifying the multimedia computer application and storing the furthermodified multimedia computer application in the database;

linking the property of the first program object to a property state ofthe logic table by the combined programming and running implementationfurther modifying the multimedia computer application and storing thefurther modified multimedia computer application in the database, theproperty state including a value statement, the property of the firstprogram object being linked to the value statement, and the propertystate being linked to a numerical value property of the logic table asan output;

either one of (1) linking the numerical value property of the logictable as the output to a property of the second program object, or (2)linking the numerical value property of the second program object to theoutput, by the combined programming and running implementation furthermodifying the multimedia computer application and storing the furthermodified multimedia computer application in the database, therebylinking the property of the first program object and the property of thesecond program object through the logic table.

15. A computer apparatus comprising a computer-readable medium withprogram instructions when executed by a processor to process and displaya plurality of images on an image display, and a control unit adapted toexecute a method of associating a plurality of program objects using alogic table as a program object in a graphical user interface (GUI)system, the GUI system being implemented by a combined programming andrunning implementation that interacts with a multimedia computerapplication, the combined programming and running implementation beingprovided on the computer apparatus that includes a database and an imagedisplay, the GUI system being displayed on the image display, the methodcomprising:

displaying a plurality of program objects and a logic table in the GUIsystem by the combined programming and running implementation accessingthe plurality of program objects and the logic table from a databasestructure that includes an object library in the database, and modifyingthe multimedia computer application;

linking a property of each of the program objects as respective inputsto the logic table by the combined programming and runningimplementation further modifying the multimedia computer application andstoring the modified computer application;

linking each of the properties of the program objects to a propertystate of the logic table by the combined programming and runningimplementation further modifying the multimedia computer application andstoring the modified computer application, the property state includinga plurality of value statements, the properties of the plurality ofprogram objects being linked to each of the respective value statements,the plurality of value statements being arranged sequentially in theproperty state, and at least one sequential arrangement of the valuestatements being linked to a numerical value property of the logic tableas an output, the at least one sequential arrangement of the valuestatements also being linked to an answer;

either one of (1) linking the numerical value property of the logictable as the output to a property of another program object or (2)linking a numerical value property of another program object to theoutput, by the combined programming and running implementation furthermodifying the multimedia computer application and storing the furthermodified multimedia computer application.

16. A computer apparatus comprising a computer-readable medium withprogram instructions when executed by a processor to process and displaya plurality of images on an image display, and a control unit adapted toexecute a method of associating a plurality of program objects using alogic table as a program object in a graphical user interface (GUI)system, the GUI system being implemented by a combined programming andrunning implementation that interacts with a multimedia computerapplication, the combined programming and running implementation beingprovided on the computer apparatus that includes a database and an imagedisplay, the GUI system being displayed on the image display, the methodcomprising:

displaying a first program object, a second program object and a logictable in the GUI system by the combined programming and runningimplementation accessing the first program object, the second programobject and the logic table from an object library in the database, andmodifying the multimedia computer application;

linking a property of a first program object to the logic table by thecombined programming and running implementation further modifying themultimedia computer application and storing the modified computerapplication in the database, the logic table including a plurality ofproperty states, the property of the first program object being suchthat the first program object is capable of switching from one propertystate to another property state in the logic table;

linking the property of the first program object to one of the propertystates of the logic table by the combined programming and runningimplementation further modifying the multimedia computer application andstoring the modified multimedia computer application in the database,each of the property states including a value statement, each of theproperty state being linked to a numerical value property of the logictable as an output;

either one of (1) linking the numerical value property of the logictable as the output to a property of the second program object or (2)linking the numerical value property of the second program object to theoutput by the combined programming and running implementation furthermodifying the multimedia computer application and storing the modifiedmultimedia computer application in the database, the value statementcontained in each of the property states defining the property of thesecond program object.

17. A method of associating a plurality of program objects using a logictable as a program object in a graphical user interface (GUI) system,the GUI system being implemented by a combined programming and runningimplementation that interacts with a multimedia computer application,the combined programming and running implementation being provided onthe computer apparatus that includes a database and an image display,the GUI system being displayed on the image display, the methodcomprising:

displaying a first program object, a second program object and the logictable in the GUI system by the combined programming and runningimplementation accessing the first program object, the second programobject and the logic table from an object library stored in thedatabase, modifying a multimedia computer application and storing themodified multimedia computer application in the database;

linking a property of the first program object as an input to the logictable by the combined programming and running implementation furthermodifying the multimedia computer application and storing the furthermodified multimedia computer application in the database;

linking the property of the first program object to a property state ofthe logic table by the combined programming and running implementationfurther modifying the multimedia computer application and storing thefurther modified multimedia computer application in the database, theproperty state including a value statement, the property of the firstprogram object being linked to the value statement, and the propertystate being linked to a numerical value property of the logic table asan output;

either one of (1) linking the numerical value property of the logictable as the output to a property of the second program object, or (2)linking the numerical value property of the second program object to theoutput, by the combined programming and running implementation furthermodifying the multimedia computer application and storing the furthermodified multimedia computer application in the database, therebylinking the property of the first program object and the property of thesecond program object through the logic table.

18. A method of associating a plurality of program objects using a logictable as a program object in a graphical user interface (GUI) system,the GUI system being implemented by a combined programming and runningimplementation that interacts with a multimedia computer application,the combined programming and running implementation being provided onthe computer apparatus that includes a database and an image display,the GUI system being displayed on the image display, the methodcomprising:

displaying a plurality of program objects and a logic table in the GUIsystem by the combined programming and running implementation accessingthe plurality of program objects and the logic table from a databasestructure that includes an object library in the database, and modifyingthe multimedia computer application;

linking a property of each of the program objects as respective inputsto the logic table by the combined programming and runningimplementation further modifying the multimedia computer application andstoring the modified computer application;

linking each of the properties of the program objects to a propertystate of the logic table by the combined programming and runningimplementation further modifying the multimedia computer application andstoring the modified computer application, the property state includinga plurality of value statements, the properties of the plurality ofprogram objects being linked to each of the respective value statements,the plurality of value statements being arranged sequentially in theproperty state, and at least one sequential arrangement of the valuestatements being linked to a numerical value property of the logic tableas an output, the at least one sequential arrangement of the valuestatements also being linked to an answer;

either one of (1) linking the numerical value property of the logictable as the output to a property of another program object or (2)linking a numerical value property of another program object to theoutput, by the combined programming and running implementation furthermodifying the multimedia computer application and storing the furthermodified multimedia computer application.

19. A method of associating a plurality of program objects using a logictable as a program object in a graphical user interface (GUI) system,the GUI system being implemented by a combined programming and runningimplementation that interacts with a multimedia computer application,the combined programming and running implementation being provided onthe computer apparatus that includes a database and an image display,the GUI system being displayed on the image display, the methodcomprising:

displaying a first program object, a second program object and a logictable in the GUI system by the combined programming and runningimplementation accessing the first program object, the second programobject and the logic table from an object library in the database, andmodifying the multimedia computer application;

linking a property of a first program object to the logic table by thecombined programming and running implementation further modifying themultimedia computer application and storing the modified computerapplication in the database, the logic table including a plurality ofproperty states, the property of the first program object being suchthat the first program object is capable of switching from one propertystate to another property state in the logic table;

linking the property of the first program object to one of the propertystates of the logic table by the combined programming and runningimplementation further modifying the multimedia computer application andstoring the modified multimedia computer application in the database,each of the property states including a value statement, each of theproperty state being linked to a numerical value property of the logictable as an output;

either one of (1) linking the numerical value property of the logictable as the output to a property of the second program object or (2)linking the numerical value property of the second program object to theoutput by the combined programming and running implementation furthermodifying the multimedia computer application and storing the modifiedmultimedia computer application in the database, the value statementcontained in each of the property states defining the property of thesecond program object.

What is claimed is:
 1. A method of associating a plurality of programobjects using a logic table as a program object in a graphical userinterface (GUI) system so that a user can implement the functions of thelogic table without a user creating a source code, comprising:displaying a first program object, a second program object and the logictable in the GUI system using a combined programming and runningimplementation accessing the first program object, the second programobject and the logic table from an object library stored in a databaseof a computer apparatus, the GUI system being implemented by thecombined programming and running implementation that interacts with amultimedia computer application, the combined programming and runningimplementation being provided on the computer apparatus that includesthe database and an image display, and the GUI system being displayed onthe image display; linking a property of the first program object as aninput to the logic table; linking the property of the first programobject to a property state of the logic table; and linking the propertyof the first program object and a property of the second program objectthrough the property state of the logic table.
 2. The method of claim 1,wherein the property state includes a value statement and the propertyof the first program object is linked to the value statement.
 3. Themethod of claim 2, wherein properties of a plurality of program objectsare linked to the property state, the property state includes aplurality of value statements, and each of the properties of theplurality of program objects is linked to each of the respective valuestatements.
 4. The method of claim 3, wherein the plurality of valuestatements are arranged sequentially in the property state.
 5. Themethod of claim 4, wherein at least one sequential arrangement of thevalue statements is linked to a numerical value property of the logictable as an output.
 6. The method of claim 5, wherein the at least onesequential arrangement of the value statements also is linked to ananswer.
 7. The method of claim 6, wherein the logic table includes aplurality of property states and a plurality of answers, and each of theproperty states are linked to one of the answers.
 8. The method of claim2, wherein the value statement is a true or false statement.
 9. Themethod of claim 2, wherein the value statement is an alphanumericalstatement.
 10. The method of claim 2, wherein the property state islinked to a numerical value property of the logic table as an output.11. The method of claim 10, wherein linking the property of the firstprogram object and the property of the second program object through thelogic table includes linking the numerical value property of the logictable as the output to the property of the second program object. 12.The method of claim 10, wherein linking the property of the firstprogram object and the property of the second program object through thelogic table includes linking the numerical value property of the secondprogram object to the output.
 13. The method of claim 10, furthercomprising evaluating the property of the first program object based onan evaluation expression, and linking the property of the first programobject to the value statement based on the evaluation.
 14. The method ofclaim 10, wherein a program object other than the first program objectis linked as the input, the property state includes a plurality of valuestatements where one of the value statements is linked to a property ofthe program object other than the first program object that is linked asthe input, and the evaluation expression references the property of theprogram object other than the first program object that is linked as theinput, and the evaluation is based on the reference to the property ofthe program object other than the first program object that is linked asthe input.
 15. A non-transitory computer-readable medium having computerexecutable instructions stored thereon, characterized in that thenon-transitory computer-readable medium is configured for providing alogic table as a graphical object on an image display so that a user canimplement the functions of the logic table without a user creating asource code, wherein the non-transitory computer-readable medium isfurther configured to allow a computer apparatus to execute a method ofassociating a plurality of program objects using the logic table as aprogram object in a graphical user interface (GUI) system, the GUIsystem being implemented by a combined programming and runningimplementation that interacts with a multimedia computer application,the combined programming and running implementation being provided onthe computer apparatus that includes a database and an image display,the GUI system being displayed on the image display, the methodcomprising: displaying a first program object, a second program objectand the logic table in the GUI system by the combined programming andrunning implementation accessing the first program object, the secondprogram object and the logic table from an object library stored in thedatabase, modifying a multimedia computer application and storing themodified multimedia computer application in the database; linking aproperty of the first program object as an input to the logic table bythe combined programming and running implementation further modifyingthe multimedia computer application and storing the further modifiedmultimedia computer application in the database; linking the property ofthe first program object to a property state of the logic table by thecombined programming and running implementation further modifying themultimedia computer application and storing the further modifiedmultimedia computer application in the database; and linking theproperty of the first program object and the property of the secondprogram object through the property state of the logic table by thecombined programming and running implementation further modifying themultimedia computer application and storing the further modifiedmultimedia computer application in the database.
 16. A graphical userinterface (GUI) system having a hardware processor comprising a logictable that is configured to associate a plurality of program objectsusing the logic table as a program object by displaying a first programobject, a second program object and the logic table in the GUI systemusing a combined programming and running implementation accessing thefirst program object, the second program object and the logic table froman object library stored in a database of a computer apparatus, the GUIsystem being implemented by the combined programming and runningimplementation that interacts with a multimedia computer application,the combined programming and running implementation being provided onthe computer apparatus that includes the database and an image display,and the GUI system being displayed on the image display; linking aproperty of the first program object as an input to the logic table;linking the property of the first program object to a property state ofthe logic table; and linking the property of the first program objectand a property of the second program object through the property stateof the logic table.
 17. The GUI system of claim 16, wherein the logictable includes a play control, wherein the play control allows a user tomove from one property state to another property state.
 18. The GUIsystem of claim 16, wherein the logic table includes a tween bar tomanipulate the transition between one property state to another propertystate.
 19. The GUI system of claim 16, wherein the logic table includesan input port and an output port for linking the properties of theprogram objects.
 20. The GUI system of claim 16, wherein the logic tableincludes a value property port for linking the value statements.
 21. TheGUI system of claim 16, wherein the logic table includes an out wire bayfor collecting a plurality of links.
 22. A method of associating aplurality of program objects using a logic table as a program object ina graphical user interface (GUI) system so that a user can implement thefunctions of the logic table without a user creating a source code,comprising: linking a property of a first program object as an input tothe logic table; linking the property of the first program object to aproperty state of the logic table; linking the property of the firstprogram object and a property of a second program object through theproperty state of the logic table; evaluating the property of the firstprogram object based on an evaluation expression; and linking theproperty of the first program object to the value statement based on theevaluation, wherein the property state includes a value statement andthe property of the first program object is linked to the valuestatement, wherein the property state is linked to a numerical valueproperty of the logic table as an output, and wherein a program objectother than the first program object is linked as the input, the propertystate includes a plurality of value statements where one of the valuestatements is linked to a property of the program object other than thefirst program object that is linked as the input, and the evaluationexpression references the property of the program object other than thefirst program object that is linked as the input, and the evaluation isbased on the reference to the property of the program object other thanthe first program object that is linked as the input.
 23. A graphicaluser interface (GUI) system having a hardware processor comprising alogic table that is configured to associate a plurality of programobjects using the logic table as a program object by linking a propertyof a first program object as an input to the logic table; linking theproperty of the first program object to a property state of the logictable; linking the property of the first program object and a propertyof a second program object through the property state of the logictable; evaluating the property of the first program object based on anevaluation expression; and linking the property of the first programobject to the value statement based on the evaluation, wherein theproperty state includes a value statement and the property of the firstprogram object is linked to the value statement, wherein the propertystate is linked to a numerical value property of the logic table as anoutput, and wherein a program object other than the first program objectis linked as the input, the property state includes a plurality of valuestatements where one of the value statements is linked to a property ofthe program object other than the first program object that is linked asthe input, and the evaluation expression references the property of theprogram object other than the first program object that is linked as theinput, and the evaluation is based on the reference to the property ofthe program object other than the first program object that is linked asthe input.